#include <iostream>

void Swap(int& a,int& b)
{
    int temp = a;
    a = b;
    b = temp;
}

void PrintInt(const int &a)
{
    // a++;  常引用不允许修改
    std::cout<<a<<std::endl;
}
int main()
{
    //引用:替代指针
    //引用是变量的别名
    //引用符号:  &

    //引用使用的注意事项：1、引用定义必须要初始化
    //                   2、引用一经确定，不可再修改朝向
    //                   3、替代指针……
    int a = 10;
    int& b = a;
    b = 20;
    std::cout<<a<<std::endl;


    // int a = 10;
    // int b = 20;
    // Swap(a,b);
    // std::cout<<"a="<<a<<" b="<<b<<std::endl;

    //引用的本质是指针常量

    // int a = 10;
    // int &b = a;   //  int *const b = &a;

    //左值引用:只能取左值
    const int &c = 10;  //常引用: const &:可以取右值
    PrintInt(10);
    return 0;
}